Voice-over-Internet-Protocol (VOIP) is used in IP telephony to send voice information in digital form in discrete packets rather than in the traditional circuit-committed protocols of the public switched telephone network (PSTN). In addition to IP, VoIP uses real-time transport protocol (RTP) to help ensure that packets get delivered in a timely manner. RTP combines its data transport with a real-time control protocol (RTCP) to, for example, monitor data delivery. Such monitoring allows the receiver to detect if there is any packet loss and to compensate for any delay jitter.
RTP works independently of underlying transport and network layer protocols. Information in the RTP header tells the receiver how to reconstruct the data and describes how the codec bit streams are packetized. RTP components include a sequence number used to detect lost packets, payload identification to describe media encoding, frame indication to mark the beginning and end of each frame, source identification to identify the originator of the frame, and intramedia synchronization to detect and compensate for different delay jitter within a single stream.
RTCP also works independently of underlying transport and network layer protocols. RTCP components include quality of service (QoS) feedback, which includes the numbers of lost packets, round-trip time, and jitter, so that the sources can adjust their data rates accordingly.
Jitter buffering is often necessary to measure the quality of service (QoS) metrics of a voice-over-Internet-Protocol (VoIP) session. For example, packet loss must be calculated after buffering and re-ordering received real-time transport protocol (RTP) packets. Without jitter buffering, the calculations of packet loss is inaccurate and tends to derive much higher loss than actual loss. This is also true for other QoS measurements, such as round-trip time.
However, jitter buffering introduces bearer path latency. Such latency in the nearer path is necessary in some case, but unnecessary in some scenarios, such as when both endpoints in a VoIP-to-VoIP session use the same codec and, thus, do not require any media transcoding functions. Inserting a jitter buffer in such transcoding-free VoIP-to-VoIP session can introduce unnecessary latency into the media path, which can negatively impact voice quality.